springboot 集成mongodb
环境依赖
在pom文件引入spring-boot-starter-data-mongodb依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
数据源配置
如果mongodb端口是默认端口,并且没有设置密码,可不配置,sprinboot会开启默认的。
spring.data.mongodb.uri=mongodb://localhost:27017/springboot-db
mongodb设置了密码,这样配置:
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/dbname
定义一个简单的实体
mongodb
package cn.tao.domain; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection="t_customer") public class Customer {
public String _id; public String carNumber; public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } public String getCarNumber() { return carNumber; } public void setCarNumber(String carNumber) { this.carNumber = carNumber; } }
据操作dao层
@Repository
public interface CustomerRepository extends MongoRepository<Customer, String> { //public Customer findByFirstName(String firstName); //public List<Customer> findByLastName(String lastName); }
写一个接口,继承MongoRepository,这个接口有了几本的CURD的功能。如果你想自定义一些查询,比如根据firstName来查询,获取根据lastName来查询,只需要定义一个方法即可。注意firstName严格按照存入的mongodb的字段对应。在典型的java的应用程序,写这样一个接口的方法,需要自己实现,但是在springboot中,你只需要按照格式写一个接口名和对应的参数就可以了,因为springboot已经帮你实现了。
controller调用方式
package cn.tao.controller; import cn.tao.domain.KdVehicle; import cn.tao.repository.KdVehicleRepository; //import cn.tao.service.MongoService; import cn.tao.service.SynService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("/mongo") public class MongoController { @Autowired private KdVehicleRepository kdVehicleRepository; @Autowired private MongoTemplate mongoTemplate; /** * 处理excel与数据库之间的差异数据 * */ @RequestMapping("/list") public List<Customer> dobegin() throws Exception { List<Customer> list = kdVehicleRepository.findAll(); //List<KdVehicle> list2 = mongoTemplate.findAll(Customer.class);//也可以 return list; } }